\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[letterpaper]{geometry}
\geometry{verbose,tmargin=2.5cm}
\usepackage{array}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{amssymb}

\makeatletter
\providecommand{\tabularnewline}{\\}
\makeatother

\usepackage{babel}

\begin{document}




\noindent \begin{center}
{\huge Software Project Management Plan 1.0}
\par\end{center}{\huge \par}

\noindent \begin{center}
17 maggio 2010
\par\end{center}

\noindent \begin{center}
Gruppo CiDeFaRo
\par\end{center}

\noindent \begin{center}
Progetto di Laboratorio Sistemi e Processi Organizzativi 2010
\par\end{center}

\noindent \begin{center}
ALMA MATER STUDIORUM - Universit\'a di Bologna\\

\par\end{center}

\noindent \begin{center}
\includegraphics[scale=0.6]{\string"Immagini png/UNIBO\string".png}\\

\par\end{center}

\noindent \begin{center}
Facolt di Scienze Matematiche Fisiche e Naturali
\par\end{center}

\noindent \begin{center}
Corso di Laurea in Scienze di Internet - A.A. 2010-2011
\par\end{center}

\noindent \begin{center}
Autore: Rossi Claudio - Project Manager 
\par\end{center}

\noindent \begin{center}
\pagebreak{}
\par\end{center}

\noindent \begin{center}
\tableofcontents{}
\par\end{center}

\pagebreak{}


\section{Introduzione}


\subsection{Introduzione}

\noindent \begin{flushleft}
Questo documento viene redatto dal Project Manager del gruppo, seguendo
- il pi\'u fedelmente possibile - le specifiche fornite dal Software
Project Management Plan definito all'interno dello standard IEEE 1058.1. 
\par\end{flushleft}

\noindent Il presente documento rappresenta una bozza della descrizione
del progetto e della pianificazione delle attivit\'a in relazione ai
ruoli assunti dai componenti del gruppo, al tempo a disposizione ed
allo sforzo preventivato. Essendo una bozza, questo documento, potr\'a essere soggetto a modifiche per aggiornare il committente dei progressi fatti durante il processo di sviluppo.


\subsection{Progetto: obiettivi e destinatari}

\noindent Si vuole realizzare un software in grado di gestire il popolare
gioco del Fantacalcio (vedi pagina Wikipedia italiano per le informazioni
preliminari sul regolamento ed il gioco in generale).

\noindent Si \'e deciso di implementare il gioco seguendo le regole
del Fantacalcio all'italiana che il Gruppo, ha ritenuto il pi\'u popolare
nel nostro paese senza implementare la regola n.5 dei 15 trasferimenti
massimi.

\noindent Inoltre si \'e deciso di seguire le modalit\'a di mercato
del Magic Cup di Gazzetta.it, cio\'e ogni Team ha un Budget prefissato
che pu\'o spendere per l'acquisto di 3 portieri, 8 difensori, 8 centrocampisti
e 6 attaccanti.

\noindent Ognuno di questi giocatori ha un costo prefissato dal sistema
e ogni Team pu\'o avere in rosa lo stesso giocatore.


\subsection{Artefatti}

\noindent Gli artefatti a corredo del progetto saranno consegnati
attraverso la pagina Wiki del corso, rispettando le seguenti scadenze:

\noindent 1. Al 17/5/2010: i PM dovranno consegnare su wiki una bozza
iniziale del Piano di Processo.

\noindent 2. Al 17/5/2010: i TS deniranno eventuali emendamenti ai
requisiti, consegnando sul wiki un documento dei requisiti scritto
usando uno strumento qualsiasi di gestione dei requisiti.

\noindent 3. Al 31/5/2010: i Librarian dovranno consegnare sul wiki
una bozza della relazione con la parte UML, in modo che possa essere
fatta una revisione incrociata.

\noindent 4. Al 7/6/2010: i QE dovranno consegnare su wiki e per email
le schede di valutazione dei progetti che saranno stati loro assegnati.

\noindent 5. 31/01/2010: scadenza ultima per la consegna dell'implementazione
del progetto.


\subsection{Evoluzione dell'SPMP}

\noindent Al presente documento seguiranno versioni aggiornate e ampliate
in funzione del processo di progettazione. Sar\'a cos\'i possibile offrire
un costante monitoraggio delle attivit\'a e dello stato del progetto.


\subsection{Materiale di Riferimento}

\noindent Nella realizzazione del presente documento si \'e seguito
lo standard IEEE 1058.1, integrato dalle nozioni apprese a lezione
e dal materiale reperibile sul Wiki.


\subsection{Definizioni e Acronimi}

\noindent \begin{flushleft}
Fantacalcio: nome del Sistema;
\par\end{flushleft}

\noindent \begin{flushleft}
Utente: persona che gioca al Fantacalcio e si iscrive ad una Lega;
\par\end{flushleft}

\noindent \begin{flushleft}
Team: gruppo di Giocatori scelti da ogni Utente per partecipare ad
una Lega;
\par\end{flushleft}

\noindent \begin{flushleft}
Lega: gruppo di Team partecipanti al Fantacalcio;
\par\end{flushleft}

\noindent \begin{flushleft}
Campionato: campionato di calcio reale (es. Seria A Italiana, Bundesliga
Tedesca);
\par\end{flushleft}

\noindent \begin{flushleft}
Giocatore: persona reale che disputa partite reali nel Campionato
e che \'e associato a qualche Team;
\par\end{flushleft}

\noindent \begin{flushleft}
Squadra: gruppo di Giocatori che partecipano al Campionato;
\par\end{flushleft}

\noindent \begin{flushleft}
Giornata: insieme partite disputate lo stesso giorno;
\par\end{flushleft}

\noindent \begin{flushleft}
Calendario: giornate disputate o da disputare all'interno di una Lega;
\par\end{flushleft}

\noindent \begin{flushleft}
Formazione: gruppo di Giocatori di un Team che partecipano ad una
Giornata del Calendario;
\par\end{flushleft}

\noindent \begin{flushleft}
Schema di gioco: metodo con cui i Giocatori di ogni Formazione sono
schierati;
\par\end{flushleft}

\noindent \begin{flushleft}
Acquisto Giocatore: operazione effettuata dall'utente nella quale,
a seguito di una diminuzione del credito pari al valore del giocatore,
viene aggiunto al team dell'Utente;
\par\end{flushleft}

\noindent \begin{flushleft}
Vendita Giocatore: operazione effettuata dall'utente nella quale,
a seguito di un aumento del credito pari a met\'a del valore del giocatore,
viene cancellato dal team dell'Utente;
\par\end{flushleft}

\noindent \begin{flushleft}
Credito: mezzo di scambio per l'acquisto e la vendita dei Giocatori;
\par\end{flushleft}

\noindent \begin{flushleft}
Modulo Formazione: tipologia di schieramento dei giocatori in campo
(es. 4-4-2, 3-4-3);
\par\end{flushleft}

\noindent \begin{flushleft}
Budget: somma dei Crediti a disposizione di un Utente per il proprio
Team;
\par\end{flushleft}

\noindent \begin{flushleft}
Titolare: un Giocatore che concorre al punteggio totale di ogni Giornata
per il Team (massimo 11 per Team);
\par\end{flushleft}

\noindent \begin{flushleft}
Sostituto: un Giocatore che subentra al Titolare in caso di assenza
di Voto (massimo 7 per Team)(massimo 3 cambi);
\par\end{flushleft}

\noindent \begin{flushleft}
Voto: punteggio assegnato ad ogni Giocatore per ogni Giornata da un
quotidiano sportivo.
\par\end{flushleft}


\section{Organizzazione del progetto}


\subsection{Modello di Processo}

\noindent Il modello di processo software seguito nello sviluppo,
per quanto possibile, \'e il RUP (Rational Unified Process). A tal proposito
si sottolinea che a causa di problemi, impedimenti e scadenze incombenti
si \'e dato maggior peso alla fase di progettazione rispetto alla stesura
del codice. Nonostante una prima release sia in corso d'opera, quindi
si potrebbe affermare che il modello di processo seguito sia in realt\'a
un ibrido tra RUP e Waterfall.


\subsection{Struttura Organizzativa}

\noindent \begin{flushleft}
Come prima attivit\'a di progetto ogni componente del team di sviluppo
ha espresso una preferenza riguardo al ruolo da ricoprire all'interno
del processo e, di comune accordo, sono state attribuite le posizioni.
\par\end{flushleft}

\noindent \begin{flushleft}
Come da specifica il Project Manager ha confermato i ruoli sotto elencati.
\par\end{flushleft}

\noindent \begin{tabular}{|>{\centering}p{0.9in}|>{\centering}p{1in}|>{\centering}p{0.7in}|>{\centering}p{2in}|}
\hline 
\textbf{Ruolo}  & \textbf{Componente}  & \textbf{Matricola}  & \textbf{E-mail} \tabularnewline
\hline 
PM - Project Manager  & Rossi Claudio  & 303833  & claudio.rossi14@studio.unibo.it\tabularnewline
\hline 
L - Librarian  & Andrea Cinelli  & 305836  & cinelli@cs.unibo.it\tabularnewline
\hline 
TS - Tools Specialist  & Matteo Fanciulli  & 323039  & matteo.fanciulli@studio.unibo.it\tabularnewline
\hline 
QE - Quality Engineer & Alessandro De Troia  & 309413  & alessandro.detroia@studio.unibo.it\tabularnewline
\hline
\end{tabular}


\subsection{Responsabilit\'a del progetto}

\noindent \begin{flushleft}
Analogamente all'assegnazione dei ruoli, l'attribuzione delle responsabilit\'a
del progetto segue le indicazioni fornite dalle specifiche.
\par\end{flushleft}

\noindent \begin{tabular}{|>{\raggedright}m{1in}|>{\centering}m{0.9in}|>{\centering}m{0.9in}|>{\centering}m{0.9in}|>{\centering}m{0.9in}|}
\hline 
\textbf{Responsabilit\'a}  & \textbf{PM}  & \textbf{L}  & \textbf{TS}  & \textbf{QE} \tabularnewline
\hline 
Pianificazione Attivit\'a  & X  &  &  & \tabularnewline
\hline 
Redazione Documenti  & X  & X  & X  & X \tabularnewline
\hline 
Mantenimento Sito  &  & X  &  & \tabularnewline
\hline 
Controllo Qualit\'a &  &  &  & X \tabularnewline
\hline 
Controllo Tools di Sviluppo  &  &  & X  & \tabularnewline
\hline 
Redazione Diario di Gruppo  &  & X  &  & \tabularnewline
\hline 
Redazione Diario di Personale  & X  & X  & X  & X \tabularnewline
\hline
\end{tabular}


\section{Piano di Processo Manageriale}


\subsection{Work Breakdown Structure}

\noindent \begin{flushleft}
Ogni attivit\'a di lavoro all'interno del progetto \'e stata identificata
ed organizzata come rappresentato dal diagramma WBS riportato sotto.
(Fig. 1)
\par\end{flushleft}

\includegraphics[scale=0.30]{\string"Immagini png/wbs\string".png}

\noindent \begin{flushright}
Fig. 1 WBS 
\par\end{flushright}


\subsection{Diagramma di Gantt}

\noindent Come da specifica, in base alle attivit\'a riportate sul diagramma
WBS ed alla tempistica imposta dalle date di consegna,  stato redatto
il diagramma di Gantt qui di seguito riportato (Fig. 2).

\includegraphics[scale=0.35]{\string"Immagini png/GanttFantacalcio\string".png}

\noindent \begin{flushright}
Fig. 2 Gantt
\par\end{flushright}


\subsection{Gestione del rischio}

\noindent \begin{flushleft}
Analogamente ad ogni altro progetto, anche i processi software sono
soggetti a vari rischi che, in ultima istanza, possono anche portare
al fallimento.
\par\end{flushleft}

\noindent \begin{flushleft}
Per evitare che questo accada, \'e opportuno approntare un'analisi dei
rischi che preveda una stima del livello d'allarme ed una previsione
sugli effetti che questi avranno sul processo.
\par\end{flushleft}

\noindent \begin{flushleft}
Si riporta di seguito una tabella contenete i principali fattori di
rischio che possono decretare rallentamenti, intoppi o il non raggiungimento
degli scopi di progetto.
\par\end{flushleft}

\noindent \begin{tabular}{|>{\raggedright}m{2in}|>{\raggedright}m{2in}|>{\centering}m{1in}|}
\hline 
Rischio  & Effetto  & Probabilit\'a\tabularnewline
\hline 
Assenteismo e cattiva organizzazione tra i membri del team.  & Lavoro discontinuo, nei casi peggiori porta all'arresto dell'intero
processo produttivo.  & 40\% \tabularnewline
\hline 
Errata comprensione dei requisiti.  & Sviluppo di un software non conforme alle aspettative del cliente.  & 25\% \tabularnewline
\hline 
Lavoro di sviluppo superficiale.  & Bassa qualit\'a del software.  & 30\% \tabularnewline
\hline 
Errata pianificazione di tempistiche e consegne.  & Ritardo sui tempi di consegna  & 15\% \tabularnewline
\hline
\end{tabular}

\noindent \begin{flushleft}
Come evidenzia la tabella sopra riportata, uno dei maggiori rischi
che si incontra nella realizzazione di un processo software \'e la cattiva
comprensione dei requisiti iniziali che, se non rettificata, pu\'o portare
alla realizzazione di un progetto diverso dalla consegna affidata
e perci\'o non conforme alle richieste del cliente.
\par\end{flushleft}


\section{Piani di Processo Tecnico}


\subsection{Stima dello sforzo}

\noindent COCOMO \'e  un modello matematico creato per stimare alcuni
parametri fondamentali come il tempo di consegna ed i mesi-persona
necessari per lo sviluppo di un prodotto software.

\noindent Come prima stima il metodo COCOMO consiglia un calcolo dei
Fuction Point che descrivono i requisiti funzionali del sistema che
andranno implementati.

\noindent I FP si dividono in 5 categorie:
\begin{itemize}
\item \noindent External Input: informazioni, dati forniti dall'utente (es.nome
di file, scelte di men\'u, campi di input)
\item \noindent External Output: informazioni, dati forniti all'utente dell'applicazione
(es. report, messaggi d'errore)
\item \noindent External Inquiry: sequenze interattive di richieste e risposte
\item \noindent External Interface File: interfacce con altri sistemi informativi
esterni
\item \noindent Internal Logical File: file principali logici gestiti nel
sistema
\end{itemize}
\noindent Per ogni FP dobbiamo indicare il tipo di categoria e il
grado di difficolt\'a suddiviso tra basso, medio e alto. Il programma
di calcolo dello sforzo per ogni FP assocer\'a un moltiplicatore di
sforzo e un numero fittizio di SLOC per poter calcolare lo sforzo
totale del progetto.

\includegraphics{\string"Immagini png/FP\string".png}

\noindent \begin{flushright}
Fig 3 Fuction Point 
\par\end{flushright}

\noindent \begin{flushleft}
Dopodich\'e il programma stimer\'a lo sforzo necessario.
\par\end{flushleft}

\includegraphics[scale=0.36]{\string"Immagini png/ScrennCocomoUC\string".png}

\noindent \begin{flushright}
Fig 4 COCOMO 
\par\end{flushright}

\noindent Secondo il software il programma sar\'a composto da
5610 SLOC per uno sforzo totale di 19,6 mesi-persona da suddividere
per 4 componenti del gruppo che in totale sono 5 mesi-persona a testa.

\noindent Da notare che il programma non tiene conto delle righe auto
generate dagli IDE moderni quindi si ritengono queste stime troppo
pessimistiche.
\end{document}
